package com.gis.utils;

import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Component
public class CommonUtil {
    // 返回当前日期的字符串，格式由参数指定
    public static String getNowDateLongStr(String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(new Date());
    }
    // 生成一个随机的UUID并将其转换为字符串
    public static String generateUuid() {
        return UUID.randomUUID().toString().replace("-", ""); // 去掉UUID中的 "-"
    }

    public File convertMultipartFileToFile(MultipartFile file) throws IOException {
        // 定义保存的文件夹路径，相对路径为项目根目录的 "uploads" 文件夹
        String folderPath = "src/test/resources";

        // 创建文件夹如果不存在
        File folder = new File(folderPath);
        if (!folder.exists()) {
            folder.mkdirs(); // 递归创建文件夹
        }

        // 定义文件保存路径
        File convFile = new File(folderPath, file.getOriginalFilename());

        // 写入文件
        try (FileOutputStream fos = new FileOutputStream(convFile)) {
            fos.write(file.getBytes());
        }

        System.out.println("File saved at: " + convFile.getAbsolutePath());
        return convFile;
    }

    /**
     * 获取字符串的中的数字
     * @param name
     * @return
     */
    public static Integer extractNumber(String name) {
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(name);
        if (matcher.find()) {
            return Integer.parseInt(matcher.group());
        }
        return 0;
    }
}
